Termination Proof Script

Consider the TRS R consisting of the rewrite rules
1:    primes  → sieve(from(s(s(0))))
2:    from(X)  → cons(X,n__from(s(X)))
3:    head(cons(X,Y))  → X
4:    tail(cons(X,Y))  → activate(Y)
5:    if(true,X,Y)  → activate(X)
6:    if(false,X,Y)  → activate(Y)
7:    filter(s(s(X)),cons(Y,Z))  → if(divides(s(s(X)),Y),n__filter(s(s(X)),activate(Z)),n__cons(Y,n__filter(X,sieve(Y))))
8:    sieve(cons(X,Y))  → cons(X,n__filter(X,sieve(activate(Y))))
9:    from(X)  → n__from(X)
10:    filter(X1,X2)  → n__filter(X1,X2)
11:    cons(X1,X2)  → n__cons(X1,X2)
12:    activate(n__from(X))  → from(X)
13:    activate(n__filter(X1,X2))  → filter(X1,X2)
14:    activate(n__cons(X1,X2))  → cons(X1,X2)
15:    activate(X)  → X
There are 15 dependency pairs:
16:    PRIMES  → SIEVE(from(s(s(0))))
17:    PRIMES  → FROM(s(s(0)))
18:    FROM(X)  → CONS(X,n__from(s(X)))
19:    TAIL(cons(X,Y))  → ACTIVATE(Y)
20:    IF(true,X,Y)  → ACTIVATE(X)
21:    IF(false,X,Y)  → ACTIVATE(Y)
22:    FILTER(s(s(X)),cons(Y,Z))  → IF(divides(s(s(X)),Y),n__filter(s(s(X)),activate(Z)),n__cons(Y,n__filter(X,sieve(Y))))
23:    FILTER(s(s(X)),cons(Y,Z))  → ACTIVATE(Z)
24:    FILTER(s(s(X)),cons(Y,Z))  → SIEVE(Y)
25:    SIEVE(cons(X,Y))  → CONS(X,n__filter(X,sieve(activate(Y))))
26:    SIEVE(cons(X,Y))  → SIEVE(activate(Y))
27:    SIEVE(cons(X,Y))  → ACTIVATE(Y)
28:    ACTIVATE(n__from(X))  → FROM(X)
29:    ACTIVATE(n__filter(X1,X2))  → FILTER(X1,X2)
30:    ACTIVATE(n__cons(X1,X2))  → CONS(X1,X2)
The approximated dependency graph contains one SCC: {23,24,26,27,29}.
Tyrolean Termination Tool  (140.04 seconds)   ---  May 3, 2006